#include <stdio.h>

//结构体嵌套
struct A
{
    char a1;
};

struct B
{
    struct A a;
    char a2;
    int a1;
};

struct C
{
    struct B b;
};
/*结构体不能为空,在C++下面是合法的
struct D
{

};
*/

struct A1
{
    int a1;
    char a2;
};

struct A2
{
    struct A1 a1;//这里是一个结构体的嵌套
    char a2;//上面的结构体变量作为一个整体存在，不可能把a2不到a1的后面,所以a2是一个单独的对齐单位
    int a3;
};



int main()
{
    struct B b;
    printf("%lu\n", sizeof(b));
    printf("%lu\n", sizeof(struct A2));
    b.a.a1 = 0;
    return 0;
}

